﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;

namespace BusinessLayer.Model.Services.Abstract
{
    /// <summary>
    /// Interface que define los métodos del servicio de la galeria de imágenes
    /// </summary>
    public interface IGalleryService
    {
        /// <summary>
        /// Genera una lista desordenada de html de las fotos de la galeria
        /// </summary>
        /// <returns>Codigo html de la lista de imágenes</returns>
        string GeneratePictureList(string category);

        /// <summary>
        /// Devuelve el nombre de una foto
        /// </summary>
        /// <param name="path">Ruta del archivo de la foto</param>
        /// <returns>Nombre de la foto</returns>
        string GetPictureName(string path);

        /// <summary>
        /// Salva una foto subida por el usuario en el repositorio y en el disco
        /// </summary>
        /// <param name="path">Ruta donde se grabará el archivo de la foto</param>
        /// <param name="imageFile">Objeto que contiene el archivo subido por el usuario</param>
        /// <param name="description">Descripción de la foto</param>
        /// <param name="category">Categoría de la foto</param>
        /// <returns>Un string que dice si se grabó satisfactoriamente la foto</returns>
        string SavePicture(string path, FileUpload imageFile, string description, string category);

        /// <summary>
        /// Devuelve el tag html de la foto especificada en las dimensiones especificadas
        /// </summary>
        /// <param name="width">Ancho de la foto</param>
        /// <param name="height">Alto de la foto</param>
        /// <param name="path">Ruta del archivo de la foto</param>
        /// <returns>Tag html de la foto</returns>
        string GetImageTag(int width, int height, string path);

        /// <summary>
        /// Devuelve el tag html de la foto especificada en su tamaño original
        /// </summary>
        /// <param name="path">Ruta del archivo de la foto</param>
        /// <returns>Tag html de la foto</returns>
        string GetImageTag(string path);

        /// <summary>
        /// Devuelve los tag de los banners (220x48)px
        /// </summary>
        /// <returns>Tag html</returns>
        string GetBannerTags();
        
    }
}
